<?php
	/**
	 * This is a MetaControl class, providing a QForm or QPanel access to event handlers
	 * and QControls to perform the Create, Edit, and Delete functionality
	 * of the TableFeedback class.  This code-generated class
	 * contains all the basic elements to help a QPanel or QForm display an HTML form that can
	 * manipulate a single TableFeedback object.
	 *
	 * To take advantage of some (or all) of these control objects, you
	 * must create a new QForm or QPanel which instantiates a TableFeedbackMetaControl
	 * class.
	 *
	 * Any and all changes to this file will be overwritten with any subsequent
	 * code re-generation.
	 * 
	 * @package My Application
	 * @subpackage MetaControls
	 * property-read TableFeedback $TableFeedback the actual TableFeedback data class being edited
	 * property QLabel $IdControl
	 * property-read QLabel $IdLabel
	 * property QIntegerTextBox $FormIdControl
	 * property-read QLabel $FormIdLabel
	 * property QTextBox $TitleEnControl
	 * property-read QLabel $TitleEnLabel
	 * property QTextBox $TitleJpControl
	 * property-read QLabel $TitleJpLabel
	 * property QIntegerTextBox $SatisfactionRateControl
	 * property-read QLabel $SatisfactionRateLabel
	 * property QTextBox $UserNameControl
	 * property-read QLabel $UserNameLabel
	 * property QTextBox $EmailControl
	 * property-read QLabel $EmailLabel
	 * property QTextBox $CommentControl
	 * property-read QLabel $CommentLabel
	 * property QTextBox $PublicControl
	 * property-read QLabel $PublicLabel
	 * property QTextBox $EnableControl
	 * property-read QLabel $EnableLabel
	 * property QDateTimePicker $FeedbackDateControl
	 * property-read QLabel $FeedbackDateLabel
	 * property QListBox $UserIdControl
	 * property-read QLabel $UserIdLabel
	 * property QTextBox $CompanynameControl
	 * property-read QLabel $CompanynameLabel
	 * property QTextBox $PublicProfileControl
	 * property-read QLabel $PublicProfileLabel
	 * property QTextBox $PublicUserTypeControl
	 * property-read QLabel $PublicUserTypeLabel
	 * property QIntegerTextBox $PublicStatusControl
	 * property-read QLabel $PublicStatusLabel
	 * property QDateTimePicker $MemberSinceControl
	 * property-read QLabel $MemberSinceLabel
	 * property QIntegerTextBox $PermissionControl
	 * property-read QLabel $PermissionLabel
	 * property-read string $TitleVerb a verb indicating whether or not this is being edited or created
	 * property-read boolean $EditMode a boolean indicating whether or not this is being edited or created
	 */

	class TableFeedbackMetaControlGen extends QBaseClass {
		// General Variables
		protected $objTableFeedback;
		protected $objParentObject;
		protected $strTitleVerb;
		protected $blnEditMode;

		// Controls that allow the editing of TableFeedback's individual data fields
		protected $lblId;
		protected $txtFormId;
		protected $txtTitleEn;
		protected $txtTitleJp;
		protected $txtSatisfactionRate;
		protected $txtUserName;
		protected $txtEmail;
		protected $txtComment;
		protected $txtPublic;
		protected $txtEnable;
		protected $calFeedbackDate;
		protected $lstUser;
		protected $txtCompanyname;
		protected $txtPublicProfile;
		protected $txtPublicUserType;
		protected $txtPublicStatus;
		protected $calMemberSince;
		protected $txtPermission;

		// Controls that allow the viewing of TableFeedback's individual data fields
		protected $lblFormId;
		protected $lblTitleEn;
		protected $lblTitleJp;
		protected $lblSatisfactionRate;
		protected $lblUserName;
		protected $lblEmail;
		protected $lblComment;
		protected $lblPublic;
		protected $lblEnable;
		protected $lblFeedbackDate;
		protected $lblUserId;
		protected $lblCompanyname;
		protected $lblPublicProfile;
		protected $lblPublicUserType;
		protected $lblPublicStatus;
		protected $lblMemberSince;
		protected $lblPermission;

		// QListBox Controls (if applicable) to edit Unique ReverseReferences and ManyToMany References

		// QLabel Controls (if applicable) to view Unique ReverseReferences and ManyToMany References


		/**
		 * Main constructor.  Constructor OR static create methods are designed to be called in either
		 * a parent QPanel or the main QForm when wanting to create a
		 * TableFeedbackMetaControl to edit a single TableFeedback object within the
		 * QPanel or QForm.
		 *
		 * This constructor takes in a single TableFeedback object, while any of the static
		 * create methods below can be used to construct based off of individual PK ID(s).
		 *
		 * @param mixed $objParentObject QForm or QPanel which will be using this TableFeedbackMetaControl
		 * @param TableFeedback $objTableFeedback new or existing TableFeedback object
		 */
		 public function __construct($objParentObject, TableFeedback $objTableFeedback) {
			// Setup Parent Object (e.g. QForm or QPanel which will be using this TableFeedbackMetaControl)
			$this->objParentObject = $objParentObject;

			// Setup linked TableFeedback object
			$this->objTableFeedback = $objTableFeedback;

			// Figure out if we're Editing or Creating New
			if ($this->objTableFeedback->__Restored) {
				$this->strTitleVerb = QApplication::Translate('Edit');
				$this->blnEditMode = true;
			} else {
				$this->strTitleVerb = QApplication::Translate('Create');
				$this->blnEditMode = false;
			}
		 }

		/**
		 * Static Helper Method to Create using PK arguments
		 * You must pass in the PK arguments on an object to load, or leave it blank to create a new one.
		 * If you want to load via QueryString or PathInfo, use the CreateFromQueryString or CreateFromPathInfo
		 * static helper methods.  Finally, specify a CreateType to define whether or not we are only allowed to 
		 * edit, or if we are also allowed to create a new one, etc.
		 * 
		 * @param mixed $objParentObject QForm or QPanel which will be using this TableFeedbackMetaControl
		 * @param integer $intId primary key value
		 * @param QMetaControlCreateType $intCreateType rules governing TableFeedback object creation - defaults to CreateOrEdit
 		 * @return TableFeedbackMetaControl
		 */
		public static function Create($objParentObject, $intId = null, $intCreateType = QMetaControlCreateType::CreateOrEdit) {
			// Attempt to Load from PK Arguments
			if (strlen($intId)) {
				$objTableFeedback = TableFeedback::Load($intId);

				// TableFeedback was found -- return it!
				if ($objTableFeedback)
					return new TableFeedbackMetaControl($objParentObject, $objTableFeedback);

				// If CreateOnRecordNotFound not specified, throw an exception
				else if ($intCreateType != QMetaControlCreateType::CreateOnRecordNotFound)
					throw new QCallerException('Could not find a TableFeedback object with PK arguments: ' . $intId);

			// If EditOnly is specified, throw an exception
			} else if ($intCreateType == QMetaControlCreateType::EditOnly)
				throw new QCallerException('No PK arguments specified');

			// If we are here, then we need to create a new record
			return new TableFeedbackMetaControl($objParentObject, new TableFeedback());
		}

		/**
		 * Static Helper Method to Create using PathInfo arguments
		 *
		 * @param mixed $objParentObject QForm or QPanel which will be using this TableFeedbackMetaControl
		 * @param QMetaControlCreateType $intCreateType rules governing TableFeedback object creation - defaults to CreateOrEdit
		 * @return TableFeedbackMetaControl
		 */
		public static function CreateFromPathInfo($objParentObject, $intCreateType = QMetaControlCreateType::CreateOrEdit) {
			$intId = QApplication::PathInfo(0);
			return TableFeedbackMetaControl::Create($objParentObject, $intId, $intCreateType);
		}

		/**
		 * Static Helper Method to Create using QueryString arguments
		 *
		 * @param mixed $objParentObject QForm or QPanel which will be using this TableFeedbackMetaControl
		 * @param QMetaControlCreateType $intCreateType rules governing TableFeedback object creation - defaults to CreateOrEdit
		 * @return TableFeedbackMetaControl
		 */
		public static function CreateFromQueryString($objParentObject, $intCreateType = QMetaControlCreateType::CreateOrEdit) {
			$intId = QApplication::QueryString('intId');
			return TableFeedbackMetaControl::Create($objParentObject, $intId, $intCreateType);
		}



		///////////////////////////////////////////////
		// PUBLIC CREATE and REFRESH METHODS
		///////////////////////////////////////////////

		/**
		 * Create and setup QLabel lblId
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblId_Create($strControlId = null) {
			$this->lblId = new QLabel($this->objParentObject, $strControlId);
			$this->lblId->Name = QApplication::Translate('Id');
			if ($this->blnEditMode)
				$this->lblId->Text = $this->objTableFeedback->Id;
			else
				$this->lblId->Text = 'N/A';
			return $this->lblId;
		}

		/**
		 * Create and setup QIntegerTextBox txtFormId
		 * @param string $strControlId optional ControlId to use
		 * @return QIntegerTextBox
		 */
		public function txtFormId_Create($strControlId = null) {
			$this->txtFormId = new QIntegerTextBox($this->objParentObject, $strControlId);
			$this->txtFormId->Name = QApplication::Translate('Form Id');
			$this->txtFormId->Text = $this->objTableFeedback->FormId;
			return $this->txtFormId;
		}

		/**
		 * Create and setup QLabel lblFormId
		 * @param string $strControlId optional ControlId to use
		 * @param string $strFormat optional sprintf format to use
		 * @return QLabel
		 */
		public function lblFormId_Create($strControlId = null, $strFormat = null) {
			$this->lblFormId = new QLabel($this->objParentObject, $strControlId);
			$this->lblFormId->Name = QApplication::Translate('Form Id');
			$this->lblFormId->Text = $this->objTableFeedback->FormId;
			$this->lblFormId->Format = $strFormat;
			return $this->lblFormId;
		}

		/**
		 * Create and setup QTextBox txtTitleEn
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtTitleEn_Create($strControlId = null) {
			$this->txtTitleEn = new QTextBox($this->objParentObject, $strControlId);
			$this->txtTitleEn->Name = QApplication::Translate('Title En');
			$this->txtTitleEn->Text = $this->objTableFeedback->TitleEn;
			$this->txtTitleEn->MaxLength = TableFeedback::TitleEnMaxLength;
			return $this->txtTitleEn;
		}

		/**
		 * Create and setup QLabel lblTitleEn
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblTitleEn_Create($strControlId = null) {
			$this->lblTitleEn = new QLabel($this->objParentObject, $strControlId);
			$this->lblTitleEn->Name = QApplication::Translate('Title En');
			$this->lblTitleEn->Text = $this->objTableFeedback->TitleEn;
			return $this->lblTitleEn;
		}

		/**
		 * Create and setup QTextBox txtTitleJp
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtTitleJp_Create($strControlId = null) {
			$this->txtTitleJp = new QTextBox($this->objParentObject, $strControlId);
			$this->txtTitleJp->Name = QApplication::Translate('Title Jp');
			$this->txtTitleJp->Text = $this->objTableFeedback->TitleJp;
			$this->txtTitleJp->MaxLength = TableFeedback::TitleJpMaxLength;
			return $this->txtTitleJp;
		}

		/**
		 * Create and setup QLabel lblTitleJp
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblTitleJp_Create($strControlId = null) {
			$this->lblTitleJp = new QLabel($this->objParentObject, $strControlId);
			$this->lblTitleJp->Name = QApplication::Translate('Title Jp');
			$this->lblTitleJp->Text = $this->objTableFeedback->TitleJp;
			return $this->lblTitleJp;
		}

		/**
		 * Create and setup QIntegerTextBox txtSatisfactionRate
		 * @param string $strControlId optional ControlId to use
		 * @return QIntegerTextBox
		 */
		public function txtSatisfactionRate_Create($strControlId = null) {
			$this->txtSatisfactionRate = new QIntegerTextBox($this->objParentObject, $strControlId);
			$this->txtSatisfactionRate->Name = QApplication::Translate('Satisfaction Rate');
			$this->txtSatisfactionRate->Text = $this->objTableFeedback->SatisfactionRate;
			$this->txtSatisfactionRate->Required = true;
			return $this->txtSatisfactionRate;
		}

		/**
		 * Create and setup QLabel lblSatisfactionRate
		 * @param string $strControlId optional ControlId to use
		 * @param string $strFormat optional sprintf format to use
		 * @return QLabel
		 */
		public function lblSatisfactionRate_Create($strControlId = null, $strFormat = null) {
			$this->lblSatisfactionRate = new QLabel($this->objParentObject, $strControlId);
			$this->lblSatisfactionRate->Name = QApplication::Translate('Satisfaction Rate');
			$this->lblSatisfactionRate->Text = $this->objTableFeedback->SatisfactionRate;
			$this->lblSatisfactionRate->Required = true;
			$this->lblSatisfactionRate->Format = $strFormat;
			return $this->lblSatisfactionRate;
		}

		/**
		 * Create and setup QTextBox txtUserName
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtUserName_Create($strControlId = null) {
			$this->txtUserName = new QTextBox($this->objParentObject, $strControlId);
			$this->txtUserName->Name = QApplication::Translate('User Name');
			$this->txtUserName->Text = $this->objTableFeedback->UserName;
			$this->txtUserName->Required = true;
			$this->txtUserName->MaxLength = TableFeedback::UserNameMaxLength;
			return $this->txtUserName;
		}

		/**
		 * Create and setup QLabel lblUserName
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblUserName_Create($strControlId = null) {
			$this->lblUserName = new QLabel($this->objParentObject, $strControlId);
			$this->lblUserName->Name = QApplication::Translate('User Name');
			$this->lblUserName->Text = $this->objTableFeedback->UserName;
			$this->lblUserName->Required = true;
			return $this->lblUserName;
		}

		/**
		 * Create and setup QTextBox txtEmail
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtEmail_Create($strControlId = null) {
			$this->txtEmail = new QTextBox($this->objParentObject, $strControlId);
			$this->txtEmail->Name = QApplication::Translate('Email');
			$this->txtEmail->Text = $this->objTableFeedback->Email;
			$this->txtEmail->Required = true;
			$this->txtEmail->MaxLength = TableFeedback::EmailMaxLength;
			return $this->txtEmail;
		}

		/**
		 * Create and setup QLabel lblEmail
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblEmail_Create($strControlId = null) {
			$this->lblEmail = new QLabel($this->objParentObject, $strControlId);
			$this->lblEmail->Name = QApplication::Translate('Email');
			$this->lblEmail->Text = $this->objTableFeedback->Email;
			$this->lblEmail->Required = true;
			return $this->lblEmail;
		}

		/**
		 * Create and setup QTextBox txtComment
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtComment_Create($strControlId = null) {
			$this->txtComment = new QTextBox($this->objParentObject, $strControlId);
			$this->txtComment->Name = QApplication::Translate('Comment');
			$this->txtComment->Text = $this->objTableFeedback->Comment;
			$this->txtComment->MaxLength = TableFeedback::CommentMaxLength;
			return $this->txtComment;
		}

		/**
		 * Create and setup QLabel lblComment
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblComment_Create($strControlId = null) {
			$this->lblComment = new QLabel($this->objParentObject, $strControlId);
			$this->lblComment->Name = QApplication::Translate('Comment');
			$this->lblComment->Text = $this->objTableFeedback->Comment;
			return $this->lblComment;
		}

		/**
		 * Create and setup QTextBox txtPublic
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtPublic_Create($strControlId = null) {
			$this->txtPublic = new QTextBox($this->objParentObject, $strControlId);
			$this->txtPublic->Name = QApplication::Translate('Public');
			$this->txtPublic->Text = $this->objTableFeedback->Public;
			$this->txtPublic->MaxLength = TableFeedback::PublicMaxLength;
			return $this->txtPublic;
		}

		/**
		 * Create and setup QLabel lblPublic
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblPublic_Create($strControlId = null) {
			$this->lblPublic = new QLabel($this->objParentObject, $strControlId);
			$this->lblPublic->Name = QApplication::Translate('Public');
			$this->lblPublic->Text = $this->objTableFeedback->Public;
			return $this->lblPublic;
		}

		/**
		 * Create and setup QTextBox txtEnable
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtEnable_Create($strControlId = null) {
			$this->txtEnable = new QTextBox($this->objParentObject, $strControlId);
			$this->txtEnable->Name = QApplication::Translate('Enable');
			$this->txtEnable->Text = $this->objTableFeedback->Enable;
			$this->txtEnable->MaxLength = TableFeedback::EnableMaxLength;
			return $this->txtEnable;
		}

		/**
		 * Create and setup QLabel lblEnable
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblEnable_Create($strControlId = null) {
			$this->lblEnable = new QLabel($this->objParentObject, $strControlId);
			$this->lblEnable->Name = QApplication::Translate('Enable');
			$this->lblEnable->Text = $this->objTableFeedback->Enable;
			return $this->lblEnable;
		}

		/**
		 * Create and setup QDateTimePicker calFeedbackDate
		 * @param string $strControlId optional ControlId to use
		 * @return QDateTimePicker
		 */
		public function calFeedbackDate_Create($strControlId = null) {
			$this->calFeedbackDate = new QDateTimePicker($this->objParentObject, $strControlId);
			$this->calFeedbackDate->Name = QApplication::Translate('Feedback Date');
			$this->calFeedbackDate->DateTime = $this->objTableFeedback->FeedbackDate;
			$this->calFeedbackDate->DateTimePickerType = QDateTimePickerType::DateTime;
			$this->calFeedbackDate->Required = true;
			return $this->calFeedbackDate;
		}

		/**
		 * Create and setup QLabel lblFeedbackDate
		 * @param string $strControlId optional ControlId to use
		 * @param string $strDateTimeFormat optional DateTimeFormat to use
		 * @return QLabel
		 */
		public function lblFeedbackDate_Create($strControlId = null, $strDateTimeFormat = null) {
			$this->lblFeedbackDate = new QLabel($this->objParentObject, $strControlId);
			$this->lblFeedbackDate->Name = QApplication::Translate('Feedback Date');
			$this->strFeedbackDateDateTimeFormat = $strDateTimeFormat;
			$this->lblFeedbackDate->Text = sprintf($this->objTableFeedback->FeedbackDate) ? $this->objTableFeedback->FeedbackDate->__toString($this->strFeedbackDateDateTimeFormat) : null;
			$this->lblFeedbackDate->Required = true;
			return $this->lblFeedbackDate;
		}

		protected $strFeedbackDateDateTimeFormat;


		/**
		 * Create and setup QListBox lstUser
		 * @param string $strControlId optional ControlId to use
		 * @return QListBox
		 */
		public function lstUser_Create($strControlId = null) {
			$this->lstUser = new QListBox($this->objParentObject, $strControlId);
			$this->lstUser->Name = QApplication::Translate('User');
			$this->lstUser->Required = true;
			if (!$this->blnEditMode)
				$this->lstUser->AddItem(QApplication::Translate('- Select One -'), null);
			$objUserArray = TableUserProject::LoadAll();
			if ($objUserArray) foreach ($objUserArray as $objUser) {
				$objListItem = new QListItem($objUser->__toString(), $objUser->Id);
				if (($this->objTableFeedback->User) && ($this->objTableFeedback->User->Id == $objUser->Id))
					$objListItem->Selected = true;
				$this->lstUser->AddItem($objListItem);
			}
			return $this->lstUser;
		}

		/**
		 * Create and setup QLabel lblUserId
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblUserId_Create($strControlId = null) {
			$this->lblUserId = new QLabel($this->objParentObject, $strControlId);
			$this->lblUserId->Name = QApplication::Translate('User');
			$this->lblUserId->Text = ($this->objTableFeedback->User) ? $this->objTableFeedback->User->__toString() : null;
			$this->lblUserId->Required = true;
			return $this->lblUserId;
		}

		/**
		 * Create and setup QTextBox txtCompanyname
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtCompanyname_Create($strControlId = null) {
			$this->txtCompanyname = new QTextBox($this->objParentObject, $strControlId);
			$this->txtCompanyname->Name = QApplication::Translate('Companyname');
			$this->txtCompanyname->Text = $this->objTableFeedback->Companyname;
			$this->txtCompanyname->MaxLength = TableFeedback::CompanynameMaxLength;
			return $this->txtCompanyname;
		}

		/**
		 * Create and setup QLabel lblCompanyname
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblCompanyname_Create($strControlId = null) {
			$this->lblCompanyname = new QLabel($this->objParentObject, $strControlId);
			$this->lblCompanyname->Name = QApplication::Translate('Companyname');
			$this->lblCompanyname->Text = $this->objTableFeedback->Companyname;
			return $this->lblCompanyname;
		}

		/**
		 * Create and setup QTextBox txtPublicProfile
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtPublicProfile_Create($strControlId = null) {
			$this->txtPublicProfile = new QTextBox($this->objParentObject, $strControlId);
			$this->txtPublicProfile->Name = QApplication::Translate('Public Profile');
			$this->txtPublicProfile->Text = $this->objTableFeedback->PublicProfile;
			$this->txtPublicProfile->MaxLength = TableFeedback::PublicProfileMaxLength;
			return $this->txtPublicProfile;
		}

		/**
		 * Create and setup QLabel lblPublicProfile
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblPublicProfile_Create($strControlId = null) {
			$this->lblPublicProfile = new QLabel($this->objParentObject, $strControlId);
			$this->lblPublicProfile->Name = QApplication::Translate('Public Profile');
			$this->lblPublicProfile->Text = $this->objTableFeedback->PublicProfile;
			return $this->lblPublicProfile;
		}

		/**
		 * Create and setup QTextBox txtPublicUserType
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtPublicUserType_Create($strControlId = null) {
			$this->txtPublicUserType = new QTextBox($this->objParentObject, $strControlId);
			$this->txtPublicUserType->Name = QApplication::Translate('Public User Type');
			$this->txtPublicUserType->Text = $this->objTableFeedback->PublicUserType;
			$this->txtPublicUserType->MaxLength = TableFeedback::PublicUserTypeMaxLength;
			return $this->txtPublicUserType;
		}

		/**
		 * Create and setup QLabel lblPublicUserType
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblPublicUserType_Create($strControlId = null) {
			$this->lblPublicUserType = new QLabel($this->objParentObject, $strControlId);
			$this->lblPublicUserType->Name = QApplication::Translate('Public User Type');
			$this->lblPublicUserType->Text = $this->objTableFeedback->PublicUserType;
			return $this->lblPublicUserType;
		}

		/**
		 * Create and setup QIntegerTextBox txtPublicStatus
		 * @param string $strControlId optional ControlId to use
		 * @return QIntegerTextBox
		 */
		public function txtPublicStatus_Create($strControlId = null) {
			$this->txtPublicStatus = new QIntegerTextBox($this->objParentObject, $strControlId);
			$this->txtPublicStatus->Name = QApplication::Translate('Public Status');
			$this->txtPublicStatus->Text = $this->objTableFeedback->PublicStatus;
			return $this->txtPublicStatus;
		}

		/**
		 * Create and setup QLabel lblPublicStatus
		 * @param string $strControlId optional ControlId to use
		 * @param string $strFormat optional sprintf format to use
		 * @return QLabel
		 */
		public function lblPublicStatus_Create($strControlId = null, $strFormat = null) {
			$this->lblPublicStatus = new QLabel($this->objParentObject, $strControlId);
			$this->lblPublicStatus->Name = QApplication::Translate('Public Status');
			$this->lblPublicStatus->Text = $this->objTableFeedback->PublicStatus;
			$this->lblPublicStatus->Format = $strFormat;
			return $this->lblPublicStatus;
		}

		/**
		 * Create and setup QDateTimePicker calMemberSince
		 * @param string $strControlId optional ControlId to use
		 * @return QDateTimePicker
		 */
		public function calMemberSince_Create($strControlId = null) {
			$this->calMemberSince = new QDateTimePicker($this->objParentObject, $strControlId);
			$this->calMemberSince->Name = QApplication::Translate('Member Since');
			$this->calMemberSince->DateTime = $this->objTableFeedback->MemberSince;
			$this->calMemberSince->DateTimePickerType = QDateTimePickerType::DateTime;
			return $this->calMemberSince;
		}

		/**
		 * Create and setup QLabel lblMemberSince
		 * @param string $strControlId optional ControlId to use
		 * @param string $strDateTimeFormat optional DateTimeFormat to use
		 * @return QLabel
		 */
		public function lblMemberSince_Create($strControlId = null, $strDateTimeFormat = null) {
			$this->lblMemberSince = new QLabel($this->objParentObject, $strControlId);
			$this->lblMemberSince->Name = QApplication::Translate('Member Since');
			$this->strMemberSinceDateTimeFormat = $strDateTimeFormat;
			$this->lblMemberSince->Text = sprintf($this->objTableFeedback->MemberSince) ? $this->objTableFeedback->MemberSince->__toString($this->strMemberSinceDateTimeFormat) : null;
			return $this->lblMemberSince;
		}

		protected $strMemberSinceDateTimeFormat;


		/**
		 * Create and setup QIntegerTextBox txtPermission
		 * @param string $strControlId optional ControlId to use
		 * @return QIntegerTextBox
		 */
		public function txtPermission_Create($strControlId = null) {
			$this->txtPermission = new QIntegerTextBox($this->objParentObject, $strControlId);
			$this->txtPermission->Name = QApplication::Translate('Permission');
			$this->txtPermission->Text = $this->objTableFeedback->Permission;
			return $this->txtPermission;
		}

		/**
		 * Create and setup QLabel lblPermission
		 * @param string $strControlId optional ControlId to use
		 * @param string $strFormat optional sprintf format to use
		 * @return QLabel
		 */
		public function lblPermission_Create($strControlId = null, $strFormat = null) {
			$this->lblPermission = new QLabel($this->objParentObject, $strControlId);
			$this->lblPermission->Name = QApplication::Translate('Permission');
			$this->lblPermission->Text = $this->objTableFeedback->Permission;
			$this->lblPermission->Format = $strFormat;
			return $this->lblPermission;
		}



		/**
		 * Refresh this MetaControl with Data from the local TableFeedback object.
		 * @param boolean $blnReload reload TableFeedback from the database
		 * @return void
		 */
		public function Refresh($blnReload = false) {
			if ($blnReload)
				$this->objTableFeedback->Reload();

			if ($this->lblId) if ($this->blnEditMode) $this->lblId->Text = $this->objTableFeedback->Id;

			if ($this->txtFormId) $this->txtFormId->Text = $this->objTableFeedback->FormId;
			if ($this->lblFormId) $this->lblFormId->Text = $this->objTableFeedback->FormId;

			if ($this->txtTitleEn) $this->txtTitleEn->Text = $this->objTableFeedback->TitleEn;
			if ($this->lblTitleEn) $this->lblTitleEn->Text = $this->objTableFeedback->TitleEn;

			if ($this->txtTitleJp) $this->txtTitleJp->Text = $this->objTableFeedback->TitleJp;
			if ($this->lblTitleJp) $this->lblTitleJp->Text = $this->objTableFeedback->TitleJp;

			if ($this->txtSatisfactionRate) $this->txtSatisfactionRate->Text = $this->objTableFeedback->SatisfactionRate;
			if ($this->lblSatisfactionRate) $this->lblSatisfactionRate->Text = $this->objTableFeedback->SatisfactionRate;

			if ($this->txtUserName) $this->txtUserName->Text = $this->objTableFeedback->UserName;
			if ($this->lblUserName) $this->lblUserName->Text = $this->objTableFeedback->UserName;

			if ($this->txtEmail) $this->txtEmail->Text = $this->objTableFeedback->Email;
			if ($this->lblEmail) $this->lblEmail->Text = $this->objTableFeedback->Email;

			if ($this->txtComment) $this->txtComment->Text = $this->objTableFeedback->Comment;
			if ($this->lblComment) $this->lblComment->Text = $this->objTableFeedback->Comment;

			if ($this->txtPublic) $this->txtPublic->Text = $this->objTableFeedback->Public;
			if ($this->lblPublic) $this->lblPublic->Text = $this->objTableFeedback->Public;

			if ($this->txtEnable) $this->txtEnable->Text = $this->objTableFeedback->Enable;
			if ($this->lblEnable) $this->lblEnable->Text = $this->objTableFeedback->Enable;

			if ($this->calFeedbackDate) $this->calFeedbackDate->DateTime = $this->objTableFeedback->FeedbackDate;
			if ($this->lblFeedbackDate) $this->lblFeedbackDate->Text = sprintf($this->objTableFeedback->FeedbackDate) ? $this->objTableFeedback->FeedbackDate->__toString($this->strFeedbackDateDateTimeFormat) : null;

			if ($this->lstUser) {
					$this->lstUser->RemoveAllItems();
				if (!$this->blnEditMode)
					$this->lstUser->AddItem(QApplication::Translate('- Select One -'), null);
				$objUserArray = TableUserProject::LoadAll();
				if ($objUserArray) foreach ($objUserArray as $objUser) {
					$objListItem = new QListItem($objUser->__toString(), $objUser->Id);
					if (($this->objTableFeedback->User) && ($this->objTableFeedback->User->Id == $objUser->Id))
						$objListItem->Selected = true;
					$this->lstUser->AddItem($objListItem);
				}
			}
			if ($this->lblUserId) $this->lblUserId->Text = ($this->objTableFeedback->User) ? $this->objTableFeedback->User->__toString() : null;

			if ($this->txtCompanyname) $this->txtCompanyname->Text = $this->objTableFeedback->Companyname;
			if ($this->lblCompanyname) $this->lblCompanyname->Text = $this->objTableFeedback->Companyname;

			if ($this->txtPublicProfile) $this->txtPublicProfile->Text = $this->objTableFeedback->PublicProfile;
			if ($this->lblPublicProfile) $this->lblPublicProfile->Text = $this->objTableFeedback->PublicProfile;

			if ($this->txtPublicUserType) $this->txtPublicUserType->Text = $this->objTableFeedback->PublicUserType;
			if ($this->lblPublicUserType) $this->lblPublicUserType->Text = $this->objTableFeedback->PublicUserType;

			if ($this->txtPublicStatus) $this->txtPublicStatus->Text = $this->objTableFeedback->PublicStatus;
			if ($this->lblPublicStatus) $this->lblPublicStatus->Text = $this->objTableFeedback->PublicStatus;

			if ($this->calMemberSince) $this->calMemberSince->DateTime = $this->objTableFeedback->MemberSince;
			if ($this->lblMemberSince) $this->lblMemberSince->Text = sprintf($this->objTableFeedback->MemberSince) ? $this->objTableFeedback->MemberSince->__toString($this->strMemberSinceDateTimeFormat) : null;

			if ($this->txtPermission) $this->txtPermission->Text = $this->objTableFeedback->Permission;
			if ($this->lblPermission) $this->lblPermission->Text = $this->objTableFeedback->Permission;

		}



		///////////////////////////////////////////////
		// PROTECTED UPDATE METHODS for ManyToManyReferences (if any)
		///////////////////////////////////////////////





		///////////////////////////////////////////////
		// PUBLIC TABLEFEEDBACK OBJECT MANIPULATORS
		///////////////////////////////////////////////

		/**
		 * This will save this object's TableFeedback instance,
		 * updating only the fields which have had a control created for it.
		 */
		public function SaveTableFeedback() {
			try {
				// Update any fields for controls that have been created
				if ($this->txtFormId) $this->objTableFeedback->FormId = $this->txtFormId->Text;
				if ($this->txtTitleEn) $this->objTableFeedback->TitleEn = $this->txtTitleEn->Text;
				if ($this->txtTitleJp) $this->objTableFeedback->TitleJp = $this->txtTitleJp->Text;
				if ($this->txtSatisfactionRate) $this->objTableFeedback->SatisfactionRate = $this->txtSatisfactionRate->Text;
				if ($this->txtUserName) $this->objTableFeedback->UserName = $this->txtUserName->Text;
				if ($this->txtEmail) $this->objTableFeedback->Email = $this->txtEmail->Text;
				if ($this->txtComment) $this->objTableFeedback->Comment = $this->txtComment->Text;
				if ($this->txtPublic) $this->objTableFeedback->Public = $this->txtPublic->Text;
				if ($this->txtEnable) $this->objTableFeedback->Enable = $this->txtEnable->Text;
				if ($this->calFeedbackDate) $this->objTableFeedback->FeedbackDate = $this->calFeedbackDate->DateTime;
				if ($this->lstUser) $this->objTableFeedback->UserId = $this->lstUser->SelectedValue;
				if ($this->txtCompanyname) $this->objTableFeedback->Companyname = $this->txtCompanyname->Text;
				if ($this->txtPublicProfile) $this->objTableFeedback->PublicProfile = $this->txtPublicProfile->Text;
				if ($this->txtPublicUserType) $this->objTableFeedback->PublicUserType = $this->txtPublicUserType->Text;
				if ($this->txtPublicStatus) $this->objTableFeedback->PublicStatus = $this->txtPublicStatus->Text;
				if ($this->calMemberSince) $this->objTableFeedback->MemberSince = $this->calMemberSince->DateTime;
				if ($this->txtPermission) $this->objTableFeedback->Permission = $this->txtPermission->Text;

				// Update any UniqueReverseReferences (if any) for controls that have been created for it

				// Save the TableFeedback object
				$this->objTableFeedback->Save();

				// Finally, update any ManyToManyReferences (if any)
			} catch (QCallerException $objExc) {
				$objExc->IncrementOffset();
				throw $objExc;
			}
		}

		/**
		 * This will DELETE this object's TableFeedback instance from the database.
		 * It will also unassociate itself from any ManyToManyReferences.
		 */
		public function DeleteTableFeedback() {
			$this->objTableFeedback->Delete();
		}		



		///////////////////////////////////////////////
		// PUBLIC GETTERS and SETTERS
		///////////////////////////////////////////////

		/**
		 * Override method to perform a property "Get"
		 * This will get the value of $strName
		 *
		 * @param string $strName Name of the property to get
		 * @return mixed
		 */
		public function __get($strName) {
			switch ($strName) {
				// General MetaControlVariables
				case 'TableFeedback': return $this->objTableFeedback;
				case 'TitleVerb': return $this->strTitleVerb;
				case 'EditMode': return $this->blnEditMode;

				// Controls that point to TableFeedback fields -- will be created dynamically if not yet created
				case 'IdControl':
					if (!$this->lblId) return $this->lblId_Create();
					return $this->lblId;
				case 'IdLabel':
					if (!$this->lblId) return $this->lblId_Create();
					return $this->lblId;
				case 'FormIdControl':
					if (!$this->txtFormId) return $this->txtFormId_Create();
					return $this->txtFormId;
				case 'FormIdLabel':
					if (!$this->lblFormId) return $this->lblFormId_Create();
					return $this->lblFormId;
				case 'TitleEnControl':
					if (!$this->txtTitleEn) return $this->txtTitleEn_Create();
					return $this->txtTitleEn;
				case 'TitleEnLabel':
					if (!$this->lblTitleEn) return $this->lblTitleEn_Create();
					return $this->lblTitleEn;
				case 'TitleJpControl':
					if (!$this->txtTitleJp) return $this->txtTitleJp_Create();
					return $this->txtTitleJp;
				case 'TitleJpLabel':
					if (!$this->lblTitleJp) return $this->lblTitleJp_Create();
					return $this->lblTitleJp;
				case 'SatisfactionRateControl':
					if (!$this->txtSatisfactionRate) return $this->txtSatisfactionRate_Create();
					return $this->txtSatisfactionRate;
				case 'SatisfactionRateLabel':
					if (!$this->lblSatisfactionRate) return $this->lblSatisfactionRate_Create();
					return $this->lblSatisfactionRate;
				case 'UserNameControl':
					if (!$this->txtUserName) return $this->txtUserName_Create();
					return $this->txtUserName;
				case 'UserNameLabel':
					if (!$this->lblUserName) return $this->lblUserName_Create();
					return $this->lblUserName;
				case 'EmailControl':
					if (!$this->txtEmail) return $this->txtEmail_Create();
					return $this->txtEmail;
				case 'EmailLabel':
					if (!$this->lblEmail) return $this->lblEmail_Create();
					return $this->lblEmail;
				case 'CommentControl':
					if (!$this->txtComment) return $this->txtComment_Create();
					return $this->txtComment;
				case 'CommentLabel':
					if (!$this->lblComment) return $this->lblComment_Create();
					return $this->lblComment;
				case 'PublicControl':
					if (!$this->txtPublic) return $this->txtPublic_Create();
					return $this->txtPublic;
				case 'PublicLabel':
					if (!$this->lblPublic) return $this->lblPublic_Create();
					return $this->lblPublic;
				case 'EnableControl':
					if (!$this->txtEnable) return $this->txtEnable_Create();
					return $this->txtEnable;
				case 'EnableLabel':
					if (!$this->lblEnable) return $this->lblEnable_Create();
					return $this->lblEnable;
				case 'FeedbackDateControl':
					if (!$this->calFeedbackDate) return $this->calFeedbackDate_Create();
					return $this->calFeedbackDate;
				case 'FeedbackDateLabel':
					if (!$this->lblFeedbackDate) return $this->lblFeedbackDate_Create();
					return $this->lblFeedbackDate;
				case 'UserIdControl':
					if (!$this->lstUser) return $this->lstUser_Create();
					return $this->lstUser;
				case 'UserIdLabel':
					if (!$this->lblUserId) return $this->lblUserId_Create();
					return $this->lblUserId;
				case 'CompanynameControl':
					if (!$this->txtCompanyname) return $this->txtCompanyname_Create();
					return $this->txtCompanyname;
				case 'CompanynameLabel':
					if (!$this->lblCompanyname) return $this->lblCompanyname_Create();
					return $this->lblCompanyname;
				case 'PublicProfileControl':
					if (!$this->txtPublicProfile) return $this->txtPublicProfile_Create();
					return $this->txtPublicProfile;
				case 'PublicProfileLabel':
					if (!$this->lblPublicProfile) return $this->lblPublicProfile_Create();
					return $this->lblPublicProfile;
				case 'PublicUserTypeControl':
					if (!$this->txtPublicUserType) return $this->txtPublicUserType_Create();
					return $this->txtPublicUserType;
				case 'PublicUserTypeLabel':
					if (!$this->lblPublicUserType) return $this->lblPublicUserType_Create();
					return $this->lblPublicUserType;
				case 'PublicStatusControl':
					if (!$this->txtPublicStatus) return $this->txtPublicStatus_Create();
					return $this->txtPublicStatus;
				case 'PublicStatusLabel':
					if (!$this->lblPublicStatus) return $this->lblPublicStatus_Create();
					return $this->lblPublicStatus;
				case 'MemberSinceControl':
					if (!$this->calMemberSince) return $this->calMemberSince_Create();
					return $this->calMemberSince;
				case 'MemberSinceLabel':
					if (!$this->lblMemberSince) return $this->lblMemberSince_Create();
					return $this->lblMemberSince;
				case 'PermissionControl':
					if (!$this->txtPermission) return $this->txtPermission_Create();
					return $this->txtPermission;
				case 'PermissionLabel':
					if (!$this->lblPermission) return $this->lblPermission_Create();
					return $this->lblPermission;
				default:
					try {
						return parent::__get($strName);
					} catch (QCallerException $objExc) {
						$objExc->IncrementOffset();
						throw $objExc;
					}
			}
		}

		/**
		 * Override method to perform a property "Set"
		 * This will set the property $strName to be $mixValue
		 *
		 * @param string $strName Name of the property to set
		 * @param string $mixValue New value of the property
		 * @return mixed
		 */
		public function __set($strName, $mixValue) {
			try {
				switch ($strName) {
					// Controls that point to TableFeedback fields
					case 'IdControl':
						return ($this->lblId = QType::Cast($mixValue, 'QControl'));
					case 'FormIdControl':
						return ($this->txtFormId = QType::Cast($mixValue, 'QControl'));
					case 'TitleEnControl':
						return ($this->txtTitleEn = QType::Cast($mixValue, 'QControl'));
					case 'TitleJpControl':
						return ($this->txtTitleJp = QType::Cast($mixValue, 'QControl'));
					case 'SatisfactionRateControl':
						return ($this->txtSatisfactionRate = QType::Cast($mixValue, 'QControl'));
					case 'UserNameControl':
						return ($this->txtUserName = QType::Cast($mixValue, 'QControl'));
					case 'EmailControl':
						return ($this->txtEmail = QType::Cast($mixValue, 'QControl'));
					case 'CommentControl':
						return ($this->txtComment = QType::Cast($mixValue, 'QControl'));
					case 'PublicControl':
						return ($this->txtPublic = QType::Cast($mixValue, 'QControl'));
					case 'EnableControl':
						return ($this->txtEnable = QType::Cast($mixValue, 'QControl'));
					case 'FeedbackDateControl':
						return ($this->calFeedbackDate = QType::Cast($mixValue, 'QControl'));
					case 'UserIdControl':
						return ($this->lstUser = QType::Cast($mixValue, 'QControl'));
					case 'CompanynameControl':
						return ($this->txtCompanyname = QType::Cast($mixValue, 'QControl'));
					case 'PublicProfileControl':
						return ($this->txtPublicProfile = QType::Cast($mixValue, 'QControl'));
					case 'PublicUserTypeControl':
						return ($this->txtPublicUserType = QType::Cast($mixValue, 'QControl'));
					case 'PublicStatusControl':
						return ($this->txtPublicStatus = QType::Cast($mixValue, 'QControl'));
					case 'MemberSinceControl':
						return ($this->calMemberSince = QType::Cast($mixValue, 'QControl'));
					case 'PermissionControl':
						return ($this->txtPermission = QType::Cast($mixValue, 'QControl'));
					default:
						return parent::__set($strName, $mixValue);
				}
			} catch (QCallerException $objExc) {
				$objExc->IncrementOffset();
				throw $objExc;
			}
		}
	}
?>